import {$http} from '@escook/request-miniprogram';
import store from './store/cart';
import user from './store/user'
// 给uni配置全局属性
// 在uni-app项目中顶级对象是uni,在Vue项目目中顶级对象是Vue,虽然像全局变量属性的配置也可以使用Vuex技术，但是就目前而言，我对VueX技术的掌握还不完善
/*
这种方式比较繁琐的是，如果需要定义的属性变量比较多，就会在一个页面中，出现很多的属性赋值的情况，会造成代码的臃肿，不优雅，但是，主流技术还是使用
VueX技术数据的集中式管理
*/
uni.$store=store
uni.$user=user
// 顶级对象uni
uni.$http=$http
// 设置请求根路径
$http.baseUrl='https://api-hmugo-web.itheima.net'
// 请求拦截器
$http.beforeRequest=function(options){
  uni.showLoading({
    title:"数据加载中..."
  })
}
// 响应拦截器
$http.afterRequest=function(options){
  uni.hideLoading()
}

//封装弹框的方法
uni.$showMsg=function(title="数据请求失败!",duration=1500){
  uni.showToast({
    title,
    duration,
    icon:'none'
  })
}


// 以上这段代码的位置必须放在  #ifndef VUE3之上，如果放在之下，就会出现，某些属性无法识别的情况

// #ifndef VUE3
import Vue from 'vue'
import App from './App'
// 使其使用全局数据
Vue.config.productionTip = false
App.mpType = 'app'
// 这相当于是给全局添加一个数据对象
const app = new Vue({
    ...App,
    store
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
import App from './App.vue'
import axios from 'axios'
export function createApp() {
  const app = createSSRApp(App)

  return {
    app
  }
}
// #endif